﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using LPrisaMVC.Entities;
using LPrisaMVC.WebMVC4;
using LPrisaMVC.DAO;

namespace LPrisaMVC.WebMVC4.Tests.Controllers
{
    [TestClass]
    public class ProveedorControllerTest
    {        
        [TestMethod]
        public void GetAllFromProveedor()
        {
            ProveedorDAO target = new ProveedorDAO();
            List<PROVEEDOR> actual;
            actual = target.GetAllFromProveedor();
            Assert.IsTrue(actual.Count >= 1);
        }

        [TestMethod]
        public void GetFromProveedorById()
        {
            ProveedorDAO target = new ProveedorDAO();
            PROVEEDOR actual;
            string ruc = "47168273667";
            actual = target.GetFromProveedorByRuc(ruc);
            Assert.IsTrue(actual.Id == 10007);
        }

        [TestMethod]
        public void GetAllFromProveedorByDescripcion()
        {
            ProveedorDAO target = new ProveedorDAO();
            List<PROVEEDOR> actual;
            var criterio = "DANY"; 
            actual = target.GetFromProveedorByDescripcion(criterio);
            //Assert.IsTrue(actual.Count >= 1);
            Assert.IsNotNull(actual);
        }

        [TestMethod]
        public void AddProveedor()
        {
            ProveedorDAO provDAO = new ProveedorDAO();
            var ListEsperado = (List<PROVEEDOR>)provDAO.GetAllFromProveedor();
            PROVEEDOR Newproveedor = new PROVEEDOR()
            {
                Ruc ="10471682735",
                RazonSocial = "DANY VALDIVIA HUAMAN",
                Direccion = "CAJAMARCA",
                Telefono = "966739761"
            };
            provDAO.AddProveedor(Newproveedor);
            var ListaCTUAL = (List<PROVEEDOR>)provDAO.GetAllFromProveedor();
            Assert.AreEqual(ListEsperado.Count + 1, ListaCTUAL.Count, "Registro Correcto ");
        }

        [TestMethod]
        public void UpdateProveedor()
        {
            ProveedorDAO provDAO = new ProveedorDAO();
            var id = 1007;
            string ruc = "47168273667";
            var RazonSocial ="DANY VALDIVIA HUAMAN";
            PROVEEDOR proveedor = new PROVEEDOR()
            {
                Id = id,
                Ruc = "10471682735",
                RazonSocial = RazonSocial,
                Direccion = "CAJAMARCA -PERU",
                Telefono = "966739761"
            };
            provDAO.UpdateProveedor(proveedor);
            var existe = provDAO.GetFromProveedorByRuc(ruc);
            Assert.IsTrue(existe.RazonSocial == RazonSocial);
        }

        [TestMethod]
        public void RemoveProveedor()
        {
            ProveedorDAO provDAO = new ProveedorDAO();
            string ruc = "47168273667";
            var id = 10008;
            provDAO.RemoveProveedor(id);
            var existe = provDAO.GetFromProveedorByRuc(ruc);
            Assert.IsTrue(existe == null);

        }
    }
}
